#pragma once

#include "../Command.h"

class HoldItem
{
public:
	static void Init();
};

class Hold : public Command
{
public:
	Hold();
	void execute(const CharacterPtr &character, const RoomPtr &room, const std::vector<std::string> &args) override;
};
typedef std::shared_ptr<Hold> HoldPtr;

class Wield : public Command
{
public:
	Wield();
	void execute(const CharacterPtr &character, const RoomPtr &room, const std::vector<std::string> &args) override;
};
typedef std::shared_ptr<Wield> WieldPtr;

class Remove : public Command
{
public:
	Remove();
	void execute(const CharacterPtr &character, const RoomPtr &room, const std::vector<std::string> &args) override;
};
typedef std::shared_ptr<Remove> RemovePtr;

class Sheath : public Command
{
public:
	Sheath();
	void execute(const CharacterPtr &character, const RoomPtr &room, const std::vector<std::string> &args) override;
};
typedef std::shared_ptr<Sheath> SheathPtr;
